24 Days of JavaScriptmas
この 24 Days of JavaScriptmas の翻訳になります
問題
Day1
https://gyazo.com/315e91cbbf6c05ead69b61c7bfb285f0
問題
n人の子供たちはm枚のキャンディを持っています。彼らは出来るだけ多くのキャンディを食べたいと思っていますが、それぞれの子供は他の子供と全く同じ量のキャンディを食べなければいけません。
全ての子供たちが一緒にどのくらいの量のキャンディを食べるかを決定する。ここのキャンディは分割できない。
例
n = 3、m = 10の時、出力はcandies(n, m) = 9 となる
それぞれの子供が3枚食べる、つまり答えは9
ヒント
Math.floor()
リンク
/icons/hr.icon
Day2
https://gyazo.com/ed7120e949ab343db99bae08e0fe74c0
問題
あなたは銀行口座に特定の金額のドルを入金しました。毎年、あなたの残高(deposit)は同じ成長率(rate)で増加します。
あなたが男性の追加の預金をしないことを前提に、あなたの残高がある一定の閾値(threshold)を超えるまでの長さを見つける。
例
deposit = 100, rate = 20, threshold = 170、出力は depositProfit(deposit, rate, threshold) = 3
毎年あなたの残高は20%上昇していきます。それは年間を通してあなたの残高が、
0年目:100
1年目:120
2年目:144
3年目:172.8
となり、あなたの残高が閾値を超えるのは3年かかるでしょう。それが答えです。
リンク
/icons/hr.icon
Day3
https://gyazo.com/ea82133ed45ba54c2b3d412623009f5b
問題
配列(第1引数)をサイズの長さ(第2引数)のグループに分ける関数を書きなさい。また、それらを2次元の配列をして返しなさい。
例
chunkyMonkey(["a", "b", "c", "d"], 2) は [["a", ["b"], ["c", "d"]] を返す。
chunkyMonkey([0, 1, 2, 3, 4, 5], 4) は [[0, 1, 2, 3], [4, 5]] を返す。
ヒント
slice()
リンク
/icons/hr.icon
Day4
https://gyazo.com/806f66e57ce3f1c081d5d6f693a53d93
問題
年が渡された時、その年がある世紀を返してください。1世紀は西暦1年から100年目までの間で、2世紀は101年から200年までの間です。
例
year = 1905, 出力は centuryFromYear(year) = 20 となる
year = 1905, 出力は centuryFromYear(year) = 20 となる
ヒント
Math.floor()
リンク
/icons/hr.icon
Day5
https://gyazo.com/2dedac14f2fa644f10ebb3d14a4eb502
問題
与えられた文字列を反転してください。
反転する前に文字列を配列に変換する必要があるかもしれません。
返り値は文字列にして下さい。
例
reverseAsString('hello') は 'olleh' を返します。
reverseAsString('Howdy') は 'ydwoH' を返します。
ヒント
join()
split()
reverse()
リンク
/icons/hr.icon
Day6
https://gyazo.com/d1bec85d5fab4f80fffabc7c87a4e81e
問題
文字列の配列が与えられた時、それらを長さの昇順に並べてください。
もし2つの文字列の長さが同じ場合、これらの相対的な並びは初期配列と同じでなければなりません。
例
入力
inputArray = ["abc", "", "aaa", "a", "zz"]
出力
sortByLength(inputArray) = ["","a", "zz", "abc", "aaa"]
ヒント
sort()
リンク
/icons/hr.icon
Day7
https://gyazo.com/a1c60bae31c19ab36638632e3917b40b
問題
英語の小文字のみで構成された文字列(s)が与えられます。もし母音なら1の値を、子音なら2の値を、入力された文字列に含まれる全ての文字に対しての合計を返してください。
例
s = "abcde" 、 出力は countVowelConsonant(s) = 8 となります。
ヒント
split()
reduce()
リンク
/icons/hr.icon
Day8
https://gyazo.com/7d1c1d11e55506a384f8a37da8dcaad9
DESCRIPTION:
In this challenge a casino has asked you to make an online dice that works just like it would in real life. Using the pre-made dice face that represents ‘one’, make the faces for ‘two’, ‘three’, ‘four’, ‘five’ and ‘six’. Now when the users clicks the dice on the screen the dice is expected to show one of the faces randomly.
DETAILED INSTRUCTIONS
1. pick out the neccesary elements from the HTML
2. Create other 5 dice faces in CSS
3. use eventlisteners on the appropriate div
4. Display dice faces randomly on click
STRETCH GOALS:
- Can you show the number you rolled as a integer along-side the dice face?
- Can you improve the overall design?
問題
このチャレンジでは、カジノが実際のものと同じように動作するオンラインサイコロを作るように依頼してきました。「1」を表す既製のサイコロの面を使って、「2」、「3」、「4」、「5」、「6」の面を作ります。これで、ユーザーが画面上でサイコロをクリックすると、サイコロの顔がランダムに表示されるようになります。
詳細な説明
1. HTMLから必要な要素を選択します。
2. CSSで他の5つのサイコロの顔を作成する
3. 適切な div でイベントリスナーを使用します。
4. クリックするとランダムにサイコロの顔が表示される
少し高めの目標
サイコロの面に沿って、転がした数字を整数で表示できますか?
全体のデザインを改善できますか?
HTML、cssに関しては
こちらを参照して下さい。(コードもかけます)
/icons/hr.icon
Day9
https://gyazo.com/22863cc28148e945607bd1210588e503
問題
正の整数numが与えられた時、その整数以下の全ての奇数のフィボナッチ数の合計を返しなさい。
フィボナッチ数列の最初の2つの数字は1と1です。この数列で追加される数字は、その前の2つの数字の合計です。
フィボナッチ数列の最初の6つの数字は1,1,2,3,5,8です。
sumFibs(10) は10を返します。なぜなら、10以下の全ての奇数のフィボナッチ数は1,1,3,5であるためです。
例
sumOddFibonacciNums(10) は 10を返します。
sumOddFibonacciNums(1000) は 1785を返します。
sumOddFibonacciNums(4000000) は 4613732を返します。
リンク
/icons/hr.icon
Day10
https://gyazo.com/56c3704986dc82b54b1ee54e39e0b172
問題
整数の配列が与えられた時、商が一番大きい隣接している要素のペアを見つけて、その商を返しなさい。
例
入力が inputArray = [3, 6, -2 ,7 ,3] の時、 出力は adjacentElementsProduct(inputArray) = 21 となる。
7と3が最大の商となる。
リンク
/icons/hr.icon
Day11
https://gyazo.com/4dee31f1d8f032b00bff0f758ea69aaf
問題
直線上に位置する障害物の座標を表した整数の配列が与えられます。
座標0地点から右に向かってジャンプすると仮定します。なんらかの整数で表される同じ長さのジャンプしかできません。
全ての障害物を避けるに十分なジャンプの最小の長さを見つけなさい。
例
inputArray = [5, 3, 6 ,7, 9] の時、出力は avoidObstacles(inputArray) = 4 となる。
ヒント
sort()
every()
リンク
/icons/hr.icon
Day12
https://gyazo.com/7804d7901db517cd2f7361ac236ff7b5
問題
与えられた文字列が24時間時計の正しい時刻であるかを確認して下さい。
例
time = 13:58 の時、出力は validTime(time) = true となる。
time = 25:51 の時、出力は validTime(time) = false となる。
time = 02:76 の時、出力は validTime(time) = false となる。
ヒント
parseInt()
split()
リンク
/icons/hr.icon
Day13
https://gyazo.com/800eda6c3638fbb68ae36f587fdb9289
問題
整数の配列が与えられた時、その中から各k番目の要素を取り除いてください。(kの倍数を取り除いてください)
例
inputArray = [1,2,3,4,5,6,7,8,9,10] , k = 3の時、
出力は extractEachKth(inputArray, k) = [1,2,4,5,7,8,10 となる。
ヒント
filter()
リンク
/icons/hr.icon
Day14
https://gyazo.com/a086341063f04180973c20baa04a7dd6
問題
整数の配列が与えられた時、隣接した2つの要素の間の最大の絶対値の差を見つけてください。
例
inputArray = [2, 4, 1, 0] の時、出力は arrayMaximalAdjacentDifference(inputArray) = 3
inputArray = [2, 9, 1, 0] の時、出力は arrayMaximalAdjacentDifference(inputArray) = 8
ヒント
Math.abs()
リンク
/icons/hr.icon
Day15
https://gyazo.com/5a8114e81fcf37481b286deabcea0ff4
問題
JavaScriptのカルーセル
機能させるためにJSを使う
左右の矢印が働く様に
おまけ:CSSトランジションを使う
例
リンク
HTML、cssに関してはこちらを参照して下さい。(コードもかけます)
/icons/hr.icon
Day16
https://gyazo.com/5adc77bc668f2a95f1cec2a708a72ff6
問題
与えられた文章を、それぞれの文字の間にダッシュを挟んだものに変換してください。
例
input = "aba caba" の時、出力は "a-b-a c-a-b-a" となります。
ヒント
join()
split()
リンク
/icons/hr.icon
Day17
https://gyazo.com/dcc98af2b22a3a148b08fac1df4637e7
問題
文字列が与えられた時、それの中にある異なる文字の数を探しなさい
例
s = "cabca" の時、出力は3になります。
3つの異なる文字があります:a,b,c
ヒント
includes()
split()
push()
リンク
/icons/hr.icon
Day18
https://gyazo.com/389bb97091640138b5fed2ff48740fbd
問題
整数の配列が与えられた時、各位置 i について、前の位置の中から、位置 i の値より小さい値を含む最後の位置を(左から)検索します。
その値を答えの配列の位置 i に格納します。
そのような値が見つからない場合は、代わりに -1 を格納します。
例
items = [3, 5, 2, 4, 5] の時、出力は [-1, 3, -1, 2, 4] となります。
ヒント
unshift()
リンク
/icons/hr.icon
Day19
https://gyazo.com/8460ab4ee1282e43d015bc128d2c1a2c
問題
与えられた文字列が平文のアルファベットの部分列であるかどうかを確認してください。
→abcd...の中の順番の配列であるかを確認する。= a-zの昇順でない、重複があるなどの場合はfalse
例
s = "effg" or s = "cdce" の場合、出力は alphabetSubsequence(s) = false
s = "ace" or s = "bxz" の場合、出力は alphabetSubsequence(s) = false
ヒント
size property
charCodeAt()
split()
リンク
/icons/hr.icon
Day20
https://gyazo.com/8a8bb94643cab307af5c687e0c374fe5
問題
GoDaddyは、その顧客に利用可能な多くの異なるトップレベルのドメインを作成します。トップレベルドメインは、例えばexample.comの.comのように、ドメイン名の最後のドット('.')の後に直接行くものです。ユーザーが利用可能なドメインから選択するのを助けるために、GoDaddyはトップレベルドメインを選択するタイプを示す新機能を導入しています。この機能を実装する必要があります。
そのため、.com、.org、.net、.infoそれぞれのドメインを "commercial"、"organization"、"network"、または "information "としてラベルを付ける関数を書いてください。与えられたドメインのリストに対して、それらのラベルのリストを返します。
例
domains = ["en.wiki.org", "codefights.coM", "happy.net", "code.info"] の時、出力は domainType(domains) = ["organization", "commercial", "network", "information"] となります。
ヒント
split()
push()
リンク
/icons/hr.icon
Day21
https://gyazo.com/9fd2075df3d57ecd54dac58672092be3
問題
2つの整数の配列a、bと整数の目標値vがあります。
1つの数をaから、もう1つの数字をbから取り、それらを足し合わせてvの和を得られることができる数字のペアがあるかどうかを判断してください。
ペアが存在するならtrueを、そうでなければfalseを返してください。
例
a = [1,2,3], b = [10,20,30,40], v = 42 の時出力は sumOfTwo(a,b,v) = true となります。
ヒント
hasOwnProperty()
リンク
/icons/hr.icon
Day22
https://gyazo.com/effa6dff80fd019a49135fda73d2df0a
問題
矩形行列と整数の列が与えられた時、与えられた行列の中でその列の要素が含まれている配列を返してください。(左端の列が0番目の列)
例
matrix = [[1,1,1,2], [0,5,0,4], [2,1,3,6]]、column = 2 の時、出力は extractMatrixColumn(matrix, column) = [1,0,3] となります。
ヒント
push()
リンク
/icons/hr.icon
Day23
https://gyazo.com/c44e85eec98bfa464ccaa71362e16b7c
]https://gyazo.com/f6d904d4849969393b3c9fa1cbc22cf3
問題
文字をカウントするためにJSを使います。
使用した文字/残っている文字を動的に表示します。
最大文字数を超えたらツイートボタンをdisableする
ソーシャルメディアの文字カウンターを作っています。 利用可能な文字をLEFTで表示したいと思います。
ここではKeydownイベントを使うと便利です。文字数が20文字以下になると赤くなります。
そこでJavascriptを使用してそのスタイルを追加します。文字数が0以下になったらボタンを無効にしたいですが、0文字しか残っていない場合はまだツイートできるはずです。
ヒント
keydown
input.value.length
addEventListeners
クラスの追加と削除
1. 最初に変数を作成します
2. イベントリスナーを追加する
3. ボタンを無効にするために使用できるものをCSSで確認してください。
4. 文字数を確認する条件を作成する
リンク
htmlとcssに関してはこちらから確認してください
/icons/hr.icon
Day24
https://gyazo.com/8e7a5bb48fbbd16e621fd7361906f583
https://gyazo.com/9f1ec7a1e20e794781d2c29716529ac9
https://gyazo.com/8e72c728dcdecb0a7f1d320b14adf3e6
問題
spin()関数の中で75msごとに上昇するカウンターを作成して下さい。また、stop()関数でプレイヤーが勝ったか負けたかを表示してください。(ストップボタンを押して、Target Numberと等しいなら勝ち、等しくないなら負けを表示してください)
code:js
const spin = async () => {
//WRITE YOUR CODE HERE
stop(i); //Trigger this function when the STOP button has been pushed
await sleep(75) //Paste this wherever you need to sleep the incrimentor
}
//EDIT THIS FUNCTION
function stop(i){
//WRITE YOUR CODE HERE
var result = document.getElementById('result'); //display your result message here
}
ヒント
既に存在しているsleep()関数は使う様にしてください
code:js
//sleep const
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
.innerHTML でプレイヤーに数字を表示してください
忘れないで欲しいのが、var pushed としてグルーバルに定義されていることと、STOPボタンを押すとtrueになるということです。
リンク
htmlとcssに関してはこちらから確認してください